#include "Task.hpp"
#include <unistd.h>
#include <string>

std::string oper = "+-*/%";

int main()
{
    srand(time(nullptr) ^ getpid());

    // ThreadPool<Task>* TP = new ThreadPool<Task>(10);
    // TP->ThreadStart();
    // size_t len = oper.size() - 1;
    // while(true)
    // {
    //     int data1 = rand() % 10;
    //     usleep(100);
    //     int data2 = rand() % 10 + 1;
    //     Task t(data1, data2, oper[rand() % len]);
    //     TP->push(t);
    //     // t.GetTask();
    //     // t.SolveTask();
    //     // t();
    // }

    ThreadPool<Task>* TP = new ThreadPool<Task>(5);
    TP->ThreadStart();
    size_t len = oper.size();
    while(true)
    {
        int data1 = rand() % 10;
        usleep(1000);
        int data2 = rand() % 10 + 1;
	char op = oper[rand() % len];
        Task t(data1, data2, op);
        TP->push(t);
        t.GetTask();
        // t.SolveTask();
        // t();
    }

    return 0;
}
